package br.com.almoxarifadoporttek.tools;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import br.com.almoxarifadoporttek.model.Propriedade;
import br.com.almoxarifadoporttek.persistence.IProdutoDAO;
import br.com.almoxarifadoporttek.persistence.IPropriedadeDAO;
import br.com.almoxarifadoporttek.persistence.PropriedadeDAO;

public class MetodosProduto 
{
	
	
	public List<Propriedade> listaPropriedadeByCompontePasta(int componente,int pasta)
	{
		 
		try 
		{
			//Variaveis auxiliares
			List<Propriedade> prop_aux1 = new ArrayList<Propriedade>();
			List<Propriedade> prop_aux2 = new ArrayList<Propriedade>();	
			List<Propriedade> prop_aux3 = new ArrayList<Propriedade>();	
			List<Propriedade> propriedadesRetorno = new ArrayList<Propriedade>();		
			
			//criando instancia da DAO
			IPropriedadeDAO propDAO = new PropriedadeDAO();
			
			//listando todos os componente
			
			switch (componente) 
			{
				case 1:
					//resistor
					prop_aux1 = propDAO.listByUnidade("OHM");
				break;
				
				case 2:
					//capacitor				
					prop_aux1 = propDAO.listByUnidade("F");
								
				break;
				
				case 3:
					//CI
					prop_aux1 = propDAO.listByUnidade("CI");
					
				break;
				case 4:
					//diodo
					prop_aux1 = propDAO.listByUnidade("DIODO");
				break;
					
				case 5:
					//microcontrolador
					prop_aux1 = propDAO.listByUnidade("MICRO");
				break;
	
				case 6:
					//Processador
					prop_aux1 = propDAO.listByUnidade("PROCESSADORES");
				break;
				
				case 7:
					//Transistor
					prop_aux1 = propDAO.listByUnidade("TRANSISTOR");
				break;
				
				case 8:
					//Indutor
					prop_aux1 = propDAO.listByUnidade("H");
				break;
				
				case 9:
					//Cristal
					prop_aux1 = propDAO.listByUnidade("HZ");
				break;
				
				case 10:
					//Outros
					prop_aux1 = propDAO.listByUnidade("OUTROS");
				break;
				
				default:
					
				break;
			}
			
			//listando todos por pasta
			switch (pasta) 
			{
				case 1:
					//1 = "Componentes passivos convencionais"
					prop_aux2 = propDAO.listByUnidade("CPC");
				break;
				
				case 2:
					//2 = "Componentes ativos convencionais"		
					prop_aux2 = propDAO.listByUnidade("CAC");								
				break;
				
				case 3:
					 //3 = "Componentes passivos SMD"
					prop_aux2 = propDAO.listByUnidade("CPSMD");
					
				break;
				case 4:
					//4 = "Componentes Ativo SMD"
					prop_aux2 = propDAO.listByUnidade("CASMD");
				break;	
				
				case 5:
					//5 = "Componentes Diversos"
					prop_aux2 = propDAO.listByUnidade("CD");
				break;
				
				case 6:
					//6 = "Connectores"
					prop_aux2 = propDAO.listByUnidade("CONECTORES");
				break;
				
				case 7:
					//7 = "Placas de Circuito Impressos"
					prop_aux2 = propDAO.listByUnidade("PCI");
				break;
				
				case 8:
					//8 = "Placas"
					prop_aux2 = propDAO.listByUnidade("PLACA");
				break;
				
				case 9:
					//9 = "Componentes Estocados Fora da Caixa"
					prop_aux2 = propDAO.listByUnidade("CEFC");
				break;
				
				case 10:
					//10 = "Componentes Sucata"
					prop_aux2 = propDAO.listByUnidade("CS");
				break;
				
				case 11:
					//11 = "Caixas"
					prop_aux2 = propDAO.listByUnidade("CAIXAS");
				break;
	
				default:
					
				break;
			}
			
			
			for(Propriedade prop1 : prop_aux1)
			{
				for(Propriedade prop2 : prop_aux2)
				{					
					if(prop1.getComponente().getId() == prop2.getComponente().getId()  )
					{
						prop_aux3.add(prop1);
					}					
				}
				
				
			}	
			
			for(Propriedade prop1 : prop_aux3)
			{
				propriedadesRetorno.addAll(propDAO.listByComponente(prop1.getComponente()));
			}		
			
			return propriedadesRetorno;
			
		}
		catch (Exception e)
		{
			return null;
		}
		
	}
	
	
	
	
	
	
	
	

}
